RadioStation is released under Apple Computer's standard "sample code" license, which appears at the top of every source file. This is actually much looser than even the most lenient open-source license, and basically disclaims any sort of control over the code by Apple: you're free to modify the source as you like and use it anywhere you like; the only restriction is that any source file you redistribute unchanged must keep the Apple license boilerplate.
Although it's not required, I politely request that you send generally-useful modifications and improvements back to me so I can incorporate them into future revisions; and that if you use any of this code in your own product, you give me some credit in an About box or read-me file.
MP3 streaming doesn't use IP multicasting, which means that each listener has their own independent data stream that runs at the same bit-rate as your MP3 files. If your broadcasts are going out over something lesser than Ethernet, this adds up. For example, if (like me!) you've got a consumer-grade DSL line with 128kbps upstream, the most you'll be able to do is serve a medium-quality 64kbps MP3 stream to one listener. The second listener will cause the connection to glitch the moment your bandwidth drops below the theoretical maximum (i.e. almost instantaneously), since there's no headroom for either client to catch up with the stream.
This means either small, intimate broadcasts, a fatter Internet pipe, or a replicator. What's a replicator? A site (e.g. Live365.com or Shoutcast.com) that listens to your stream and re-broadcasts it to larger numbers of listeners. It turns out that transmitting to a replicator requires a slightly different protocol than serving audio to clients -- I'm working on implementing that protocol, and a near-future version of RadioStation should be able to work with all the replicator sites out there.
Another bandwidth issue: when encoding your music you have to consider the connection speed of your users. If you want users with plain old modems to be able to connect, you need to limit the bit-rate of your MP3 files to comfortably less then their modem speed. Live365.com has a handy table of suggested bit-rates.
In order for people to listen to a station, they need to know its address (IP address plus port number). During initialization, each station will announce its address -- look for lines in the console containing " Station _____: Up and running! Address is <____>". The text between the angle brackets is the address (with a ":" separating the IP address and port number.) This is what other people will need to enter into their MP3 players to connect.
Some MP3 players (like the excellent SoundJam and Audion) have an "Open URL..." command that opens a dialog box into which you can type a station's address. But the most compatible thing to do, and the simplest for users, is to create a play-list file that contains the address; the MP3 player then opens the file, reads the address, and connects.
The file is simply a plain-text file with three lines in it, like so:
[playlist] NumberOfEntries=1 File1=http://snej.apple.com:8000
The address (shown in green) goes on the last line after the two slashes. The file's name should end with ".pls" so that when downloaded it can be bound to the user's MP3 application and automatically launched.
Once you have a .pls file, you can upload it to your website or e-mail it to people.